<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */
namespace App\Controller;

use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpServer\Contract\RequestInterface;

use Hyperf\HttpServer\Contract\ResponseInterface;
use Psr\Http\Message\ResponseInterface as Psr7ResponseInterface;

use Psr\Container\ContainerInterface;
use App\Constants\ReturnCode;

abstract class AbstractController
{
    #[Inject]
    protected ContainerInterface $container;

    #[Inject]
    protected RequestInterface $request;

    #[Inject]
    protected ResponseInterface $response;

    /**
     * Undocumented 公共返回方法
     * @param integer $code
     * @param array $data
     * @return Psr7ResponseInterface
     */
    protected function fmt_response(int $code,$msg = '',$data = ''):Psr7ResponseInterface{
        $ret_data = [
            'code'=>$code,
            'info'=>!empty($data)?$data:'',
            'message'=>!empty($msg)?$msg:ReturnCode::getMessage($code)
        ];
        return $this->response->json($ret_data);
    }
}
